home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist / dist6.3 / ViewKit_dev.idb / usr / include / Vk / VkEZ.h.z / VkEZ.h
C/C++ Source or Header  |  1996-09-20  |  2KB  |  116 lines

  1. #ifndef VK_EZ_H
  2. #define VK_EZ_H
  3.  
  4. #include <Xm/Xm.h>
  5.  
  6.  
  7. class EZWrapper;
  8.  
  9. class EZRes {
  10.   public:
  11.     EZRes() { }
  12.     ~EZRes() {}
  13.     inline void init(EZWrapper *ez, char *res);
  14.     
  15.   protected:
  16.     EZWrapper *_ez;
  17.     char      *_resource;
  18.     Widget    _w;
  19. };
  20.  
  21. class EZDimension : public EZRes {
  22.   public:
  23.     EZDimension() : EZRes() {}
  24.     operator Dimension();
  25.     EZWrapper& operator =(int d);
  26. };
  27.  
  28. class EZPos : public EZRes {
  29.   public:
  30.     EZPos() :EZRes() {}
  31.     operator Position();
  32.     EZWrapper& operator =(int d);
  33. };
  34.  
  35. class EZInt : public EZRes {
  36.   public:
  37.     EZInt() : EZRes() {}
  38.     operator int();
  39.     EZWrapper& operator=(int i);
  40. };    
  41.  
  42. class EZColor : public EZRes {
  43.   public:
  44.     EZColor() : EZRes() { }
  45.     operator Pixel();
  46.     EZWrapper& operator=(char * color);
  47.     EZWrapper& operator=(Pixel color);
  48. };
  49.  
  50. class EZXmString : public EZRes {
  51.   public:
  52.     EZXmString()  : EZRes() { }
  53.     operator String();
  54.     EZWrapper& operator =(char * label);
  55. };
  56.  
  57.  
  58. class EZWrapper {
  59.  
  60.  private:
  61.     
  62.     Widget _w;
  63.  
  64.     static EZWrapper* _objList;
  65.     static int _index;
  66.     
  67.    public:
  68.  
  69.     // to recyle objects after 20, to avoid undue leakage
  70.     
  71.     void *operator new(size_t);
  72.     void operator delete ( void *, size_t );
  73.  
  74.     
  75.     EZWrapper(Widget w);
  76.     ~EZWrapper();
  77.     EZWrapper& operator=(int);
  78.     EZWrapper& operator=(float);
  79.     EZWrapper& operator=(const char *);
  80.     EZWrapper& operator-=(int);    
  81.     EZWrapper& operator+=(int);
  82.     EZWrapper& operator+=(float);
  83.     EZWrapper& operator+=(const char *);
  84.     EZWrapper& operator<<(int);
  85.     EZWrapper& operator<<(float);
  86.     EZWrapper& operator<<(const char *);
  87.     operator int() { return getint();}
  88.     operator String() { return getstring();}
  89.     int getint();
  90.     char *getstring();
  91.     Widget w() { return _w;}
  92.  
  93.     EZDimension border;
  94.     EZDimension width;    
  95.     EZDimension height;
  96.     EZPos       x;
  97.     EZPos       y;
  98.     EZColor     foreground;
  99.     EZColor     background;
  100.     EZXmString  label;
  101.     EZInt       value;
  102.     EZInt       minimum;
  103.     EZInt       maximum;
  104. };
  105.  
  106.  
  107. // provide a convenience function because C++ doesn't like to instantiate
  108. // unamed objects.
  109.  
  110. extern EZWrapper &EZ(Widget wrappee);
  111.     
  112. void InitEZ(); // Just to force a link to happen
  113.  
  114. #endif
  115.  
  116.